/*
 * Binary.h
 * Behavioral Attributed Automaton
 * @author Gregoire JACOB (gregoire.jacob@orange-ftgroup.com)
 * @date 20/06/2008
 * @version 1.0
 * Constantes for binary lexical units
 */


//Objects type
#define ID_MASK  0xFFFF0000
#define ID_ONLY  0x0000FFFF
#define VARIABLE 0x00010000
#define OBJ_PERM 0x00020000
#define OBJ_TEMP 0x00030000
#define OBJ_COM  0x00040000
#define OBJ_BOOT 0x00050000
#define OBJ_THIS 0x00060000
static double typebin[6] = {0,VARIABLE,OBJ_PERM,OBJ_COM,OBJ_BOOT,OBJ_THIS};

//Delimiters (loop and conditional)
#define L_LOOP   0x00000001		/* ( */
#define R_LOOP   0x00000002		/* )* */
#define L_COND   0x00000003		/* { */
#define R_COND   0x00000004		/* } */
#define M_COND   0x00000005		/* } */

//Operations
#define OP_ARG	 0xFF000000		//first octet to 1 means 1 arguments
#define OP_ARG2  0x00FF0000		//second octet to 1 means 2 arguments
#define OP_STOP	 0x0000FF01		/* stop */
#define OP_AFF   0xFFFF0002		/* := */
#define OP_OPEN  0xFF000003		/* Open */
#define OP_CREA  0xFF000004		/* Create */
#define OP_CLOS  0xFF000005		/* Close */
#define OP_DEL   0xFF000006		/* Delete */
#define OP_EXEC  0xFF000007		/* Execute */
#define OP_READ  0xFFFF0008		/* Read */
#define OP_WRITE 0xFFFF0009		/* Write */
